pragma Singleton
import QtQuick 2.7
import "js/json.js" as OP
import plugins.FileIo 1.0



Item{
    id:root


    function strToObj(jsonStr){
        return OP.strToObj(jsonStr)
    }

    function objToStr(obj){
        return OP.objToStr(obj)
    }

    //从对象中提取对象
    function getValueFromObj(target,query){
        return target[query]
    }

    //从字符串中获取数组
    function getArray(jsonString,field){
         return OP.getArray(jsonString,field)
    }

    //获取数组对象中的值
    function getValue(jsonArrayObj,index,query){
        return OP.getValue(jsonArrayObj,index,query)
    }

    function getKeyList(obj){
         return OP.getKeyList(obj)
    }

    //1.修改数组对象的值
    function  midifyArrayValue(target,index,key,value){
        OP.midifyArrayValue(target,index,key,value)
    }


    //2.修改对象中的值
    function setJsonObjectValue(obj,index,value){
        return OP.setJsonObjectValue(obj,index,value)
    }

    //将对象写入到json对象
    function saveDataToObj(target,data){
        OP.saveDataToObj(target,data)
    }

    //将对象写入到json数组中
    function saveDataToArray(array,index,data){
        OP.saveDataToArray(array,index,data)
    }

    //将对象插入到json数组中
    function insertDataToArray(array,index,data){
        OP.insertDataToArray(array,index,data)
    }

    //将数组写入到json对象
    function saveArrayToData(target,key,array){
        OP.saveArrayToData(target,key,array)
    }

    //将数组插入到json对象
    function insertArrayToData(target,key,array){
        OP.insertArrayToData(target,key,array)
    }

    //将对象写入到本地文件
    function saveObjToFile(filepath,fileName,data){
        OP.saveObjToFile(filepath,fileName,data)
    }

    //将字符串写入到本地文件
    function saveDataToFile(filepath,fileName,str){
        OP.saveDataToFile(filepath,fileName,str)
    }

    //普通json对象插入到model
    function toListModel(json, parent){
        return OP.toListModel(json, parent)
    }

    // 用递归输出json text（有问题的，需要优化）
    function outputStr(obj){
        return OP.outputStr(obj)
    }

    //json对象创建元素
    function creatJsonElement(prop,val){
        OP.creatJsonElement(prop,val)
    }

    //从文件中读取一个json字符串
    function readFile(path,fileName){
        if("/" !== path.charAt(path.length -1)){
            path += "/"
        }
        fileIo.source = "file:///" + path + fileName
        fileIo.read()
        return fileIo.text
    }

    FileIO{
        id:fileIo
    }
}
